/**
 * Project Name:MoneyBag
 * File Name   :UserDao.java
 * Package Name:com.fu.moneybag.dao
 * Date        :2015年12月15日 下午10:10:43
 * Author      :Samfu
 * Blog        :http://www.fulishang.win
 * Copyright (c) 2015, flsmgf@163.com All Rights Reserved.
 *
 */
package com.fu.moneybag.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.fu.moneybag.entity.User;


@Repository
public interface UserDao {

	/**
	 * 添加用户
	 * @param user
	 * @return Integer
	 */
	public int addUser(User user);

	/**
	 * 删除用户
	 * @param userId
	 * @return Integer
	 */
	public int deleteUser(@Param("userId") long userId);

	/**
	 * 更新用户信息
	 * @param userId
	 * @param password
	 */
	public void updateUserByuserId(@Param("userId") long userId,
			@Param("password") String password);
	
	/**
	 * 获取用户列表
	 * @param offset
	 * @param rows
	 * @return List<User>
	 */
	public List<User> getAllList(@Param("offset") long offset, 
			@Param("rows") long rows);
	
	/**
	 * 获取用户数量
	 * @return Integer
	 */
	public int getAllUserListCount();

	/**
	 * 通过id获取用户资料
	 * @param userId
	 * @return User
	 */
	public User getUserByuserId(@Param("userId") long userId);

	/**
	 * 用户登录
	 * @param username
	 * @param password
	 * @return User
	 */
	public User login(@Param("username") String username, 
			@Param("password") String password);
	
	public User checkUserExist(@Param("username") String username);
	public User getUserByName(@Param("username") String username);
	public User getUserById(@Param("userId") long userId);
	
	/**
	 * 
	 * @param userId
	 * @return update result(int)
	 */
	public int updateUserName(@Param("userId") long userId, @Param("username") String username);

	/**
	 * 
	 * @param userId
	 * @param password
	 * @return
	 */
	public int updateUserPassword(@Param("userId") long userId, @Param("password") String password);
	
	public int updateUserEmail(@Param("userId") long userId, @Param("email") String email);
	
	public int updateUserAvartar(@Param("userId") long userId, @Param("avartar") String avartar);
	
	
}
